Подключение метода /api/v1/auth/register на API-Шлюзе
Валидация входящего DTO регулярными выражениями, проброс в gRPC RegisterUser и маппинг ответа 201 Created.
NoteКраткая карточка задачи
- Репозиторий / Компонент:
backend-api(API Gateway / Шлюз). - Категория: Подключение метода к шлюзу.
- Контракт взаимодействия: Внешний
POST /api/v1/auth/register-> Внутренний gRPCAuthService.RegisterUser. - Статус: Готово к реализации
WarningОграничение публичной документации
В открытом доступе представлена демонстрационная версия задачи. В настоящей публичной документации отображены не все шаги, технические сценарии и приватные эндпоинты для системы цифровых симуляторов бизнес-процессов.
- Полная спецификация метода: Доступна только во внутреннем контуре разработки (Confluence / Swagger Enterprise).
- Для получения доступа: Обратитесь к системному аналитику или Product Owner вашей команды.
- Инструкция по шагам:
- На Шаге 1-2 (Входной REST-эндпоинт): Зарегистрировать внешний маршрут
POST /api/v1/auth/register. Настроить валидацию входящего телаUserRegisterRequestDTOчерез Pydantic-модель (проверка email регулярным выражением, проверка минимальной длины пароля от 8 символов). При нарушении структуры возвращатьHTTP 400 Bad Request. - На Шаге 3 (gRPC-клиент): Сформировать сообщение
RegisterRequest, маппируя строковый режимspace_creation_modeво внутренний Protobuf-Enum, и направить вызов вauth-service. Обеспечить сквозную трассировку по поставляемому в заголовкахX-Request-ID. - Маппинг бизнес-статусов: Перехватывать gRPC-исключения от бэкенда. Если возвращается ошибка
ALREADY_EXISTS(Email занят), подменять ответ шлюза наHTTP 409 Conflict(с JSON-телом кодаERR_EMAIL_ALREADY_EXISTS). Ошибку невалидного инвайт-кода маппить вHTTP 404 Not Found/HTTP 410 Gone(кодERR_INVITE_TOKEN_INVALID). - Финальный ответ (Шаг 9): При получении успешного
RegisterResponse(с токенами внутри), сформировать JSON-ответ со статусом201 Created, содержащийstatus: "success", метаданные профиля и авторизационные ключи для мобильного клиента.
- На Шаге 1-2 (Входной REST-эндпоинт): Зарегистрировать внешний маршрут